shell 等待执行完成

您所在的位置:网站首页 shell 等待执行完成 shell 等待执行完成

shell 等待执行完成

2023-10-25 10:06| 来源: 网络整理| 查看: 265

Shell并没有严格意义上的多进程,但是实际工作中,也会遇到需要并行处理的事物,我们可以尝试用下面的方法,使用shell来启动多个进程来最大限度的利用CPU性能。

7c6dbb0127f58ce3bc078c4f14a69839.png

假如有6个任务需要并行处理,每个任务大概需要2秒钟。

按照平常的顺序执行的shell写法如下:

#!/bin/bashdatefor i in `seq 1 6`do{ echo "sleep 2" sleep 2}donedate

输出的结果一共耗时2 x 6=12秒:

2019年 2月18日 星期一 21时52分57秒 CSTsleep 2sleep 2sleep 2sleep 2sleep 2sleep 22019年 2月18日 星期一 21时53分09秒 CST

接着,我们使用&和wait关键字,把上面的代码改成多进程的形式:

#!/bin/bashdatefor i in `seq 1 6`do{ echo "sleep 2" sleep 2}&donewaitdate

输出的结果仅仅耗时2秒钟,多进程的形式确实让程序的效率提高了不少:

2019年 2月18日 星期一 21时55分15秒 CSTsleep 2sleep 2sleep 2sleep 2sleep 2sleep 22019年 2月18日 星期一 21时55分17秒 CST

上面多进程主要是在for循环中,对每个进程使用&符号进行后台处理,而不用等待当前进程结束再继续执行下一个,但是为了确保每个进程都执行完成,最后一定要使用wait关键字,用来确保每一个子进程都执行完成。这样的写法,可以大大的提高多个进程并发执行的效率,对于可以同时执行的批量任务,可以用多进程的写法来提高效率。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3